Ce script permet de constituer les premiers tableaux de données nécessaires à la préparation des analyses temporelles. Plusieurs indicateurs seront calculés à l’échelle des opérations de pêches, parmi eux : les densités volumiques, de surface, les pourcentages de juvénils, les longueurs médianes, … Ces indicateurs sont calculés par espèces, soit séparement pour les juvéniles et les adultes, soit de manière combinée.
## Chargement des packages ----
library(tidyverse)
library(aspe)
library(ggplot2)
library(ggthemes)
library(dplyr)
library(readxl)
## Chargement des données ----
load(file = "../processed_data/selection_pop_ope.rda")
load(file = "../processed_data/pre_traitements_donnees_env.rda")
load(file = "../processed_data/analyse_selection_especes.rda")
load(file = "../processed_data/pre_traitements_donnees_especes.rda")
rdata_tables <- misc_nom_dernier_fichier(
repertoire = "../../../../projets/ASPE/raw_data/rdata",
pattern = "^tables")
load(rdata_tables)
mei_table <- misc_nom_dernier_fichier(
repertoire = "../../../../projets/ASPE/raw_data/rdata",
pattern = "^mei")
load(mei_table)
## Chargement des fonctions ----
source(file = "../R/calcul_biomasse.R")
source(file = "../R/calcul_50_percentile.R")
source(file = "../R/calcul_ecart_interquartile.R")
source(file = "../R/calcul_25_percentile.R")
source(file = "../R/calcul_75_percentile.R")
source(file = "../R/calcul_densite_surface.R")
ope_effectif_total_statut <- mei_ope_selection %>% # Réalisation d'un df contenant les données d'effectifs selon les différents statuts (adulte / juvénile)
group_by(ope_id,
esp_code_alternatif,
statut) %>%
summarise(valeur=sum(length(mei_id))) %>%
mutate(indicateur= "effectif_total") %>%
select(ope_id,
esp_code_alternatif,
indicateur,
valeur,
statut)
ope_effectif_total_esp <- ope_effectif_total_statut %>% # Réalisation d'un df contenant les données d'effectifs tous statuts confondus
group_by(ope_id,
esp_code_alternatif) %>%
summarise(valeur=sum(valeur)) %>%
mutate(indicateur= "effectif_total") %>%
mutate (statut = "toutes") %>%
select(ope_id,
esp_code_alternatif,
indicateur,
valeur,
statut)
ope_effectif_total <- bind_rows(ope_effectif_total_statut, ope_effectif_total_esp)
# Calcul de la biomasse par opération : par espèce et par statut :
ope_biomasse_statut <- mei_ope_selection %>%
group_by(ope_id,
esp_code_alternatif,
statut) %>%
summarize(valeur = sum(poids_tp, na.rm = TRUE)) %>%
mutate (indicateur = "biomasse")
ope_biomasse_esp <- ope_biomasse_statut %>% # Réalisation d'un df contenant les données de biomasse par espèce tous statuts confondus
group_by(ope_id,
esp_code_alternatif) %>%
summarise(valeur = sum(valeur)) %>%
mutate(indicateur= "biomasse") %>%
mutate (statut = "toutes") %>%
select(ope_id,
esp_code_alternatif,
indicateur,
valeur,
statut)
ope_biomasse <- bind_rows(ope_biomasse_statut, ope_biomasse_esp)
# Ajout des données de surfaces échantillonnées dans mei_ope_selection ----
mei_ope_selection <- mei_ope_selection %>%
left_join (y=operation %>%
select (ope_id,
ope_surface_calculee,
passage$pas_numero))
Partie optionnelle : Vérification du Jeu De Données : Je vérifie que j’ai autant de ligne lop_id que lop_effectif (sauf quand le lot est S/M et à une valeur de 30) :
# verif_effectif <- mei_ope_selection %>%
# group_by(lop_id,lop_effectif) %>%
# summarise(nbr_lignes = n()) %>%
# ungroup()
#
# resultat_verif_effectif <- verif_effectif %>%
# filter(nbr_lignes!= lop_effectif)
Je vérifie que je n’ai qu’un mei_id par ligne (et pas de doublons) : “nb_unique doit” être égal au nombre total de lignes dans la colonne.
#nb_unique <- mei_ope_selection %>%
# summarise(nb_unique = n_distinct(mei_id))
# print(nb_unique)
# ------------------------------------------------------------------------------
# Ajout des effectifs dans un df ope_densite_statut ----
ope_densite_statut_eff <- mei_ope_selection %>%
group_by(ope_id,
esp_code_alternatif,
ope_surface_calculee,
statut) %>%
summarise(effectif= n_distinct(mei_id)) %>%
ungroup() %>%
mutate(indicateur= "densite_surface")
resultats_densite <- calcul_densite_surface(mei_ope_selection,
ope_surface_calculee,
ope_id,esp_code_alternatif,
statut,
mei_id)
ope_densite_surface <- resultats_densite$df1
ope_densite_surface_esp <- resultats_densite$df2
ope_densite_surface_statut <- resultats_densite$df3
!! ATTENTION !! : Ici je n’ai pas réussie à mettre en fonction !
#Ajout des données de profondeurs :
ope_selection_param_profondeur <- ope_selection_param_env %>%
filter(parametre == "profondeur") %>%
select(ope_id,
valeur) %>%
rename(ope_valeur_profondeur=valeur) %>%
distinct()
ope_densite_surface_1 <- ope_densite_surface %>%
rename(valeur_ds = valeur)
ope_densite_vol<- left_join(ope_selection_param_profondeur, ope_densite_surface_1, by = "ope_id") %>%
mutate(valeur = valeur_ds /ope_valeur_profondeur) %>%
ungroup() %>%
mutate(indicateur = "densite_volumique") %>%
select(ope_id,
esp_code_alternatif,
indicateur,
valeur,
statut)
ope_densite_volume_statut <- ope_densite_vol %>%
filter (statut == "juvénile"| statut == "adulte")
ope_densite_volume_esp <- ope_densite_vol %>%
filter (statut == "toutes")
!! ATTENTION !! : Ici je n’ai pas réussie à mettre en fonction !
########################## POURCENTAGE DE JUVENILES ############################
# Calcul des pourcentages de juvéniles pour les différents statuts des espèces (juvéniles / adultes) ----
ope_pourcentage_juveniles_statut_eff <- mei_ope_selection %>%
group_by(ope_id,
esp_code_alternatif,
statut) %>%
summarise(#effectif=sum(length(mei_id)),
#effectif2 = n_distinct(mei_id),
effectif = n()) %>%
ungroup() %>%
mutate(indicateur = "pourcentage_juveniles")
ope_pourcentage_juveniles_statut_eff2 <- mei_ope_selection %>%
group_by(ope_id,
esp_code_alternatif) %>%
summarise(#effectif=sum(length(mei_id)),
#effectif2 = n_distinct(mei_id),
effectif = n()) %>%
ungroup() %>%
mutate(indicateur = "pourcentage_juveniles",
statut = "toutes") %>%
select(names(ope_pourcentage_juveniles_statut_eff))
ope_pourcentage_juveniles_statut_eff <- ope_pourcentage_juveniles_statut_eff %>%
rbind(ope_pourcentage_juveniles_statut_eff2)
ope_pc_juv <- ope_pourcentage_juveniles_statut_eff %>%
complete(ope_id,
esp_code_alternatif,
statut,
indicateur,
fill = list(effectif = 0)) %>%
group_by(ope_id,
esp_code_alternatif) %>%
mutate(valeur = effectif[statut == "juvénile"] / effectif[statut == "toutes"]) %>%
filter(statut == "toutes",
!is.nan(valeur)) %>%
select(-effectif)
Calcul des longueurs médianes des tailles des individus par opération : Création de la fonction “calcul_50_percentile” :
resultats_longueur_mediane <- calcul_50_percentile(mei_ope_selection,mei_taille,ope_id,esp_code_alternatif, statut)
ope_50_percentile <- resultats_longueur_mediane$df1 # Construction d'un Df avec les longueurs médianes des espèces par opération toutes tailles confondues + des différents statuts ----
ope_50_percentile_esp <- resultats_longueur_mediane$df2 # Construction d'un Df avec les longueurs médianes des espèces par opération toutes tailles confondues ----
ope_50_percentile_statut <- resultats_longueur_mediane$df3 # Construction d'un Df avec les longueurs médianes des différents statuts des espèces (juvéniles / adultes) ----
Calcul des écarts interquartiles des tailles des individus par opération : Création de la fonction “calcul_ecart_interquartile” :
######################### ECART INTERQUARTILE #############################
resultats_ecart_interquartile <- calcul_ecart_interquartile(mei_ope_selection,mei_taille,ope_id,esp_code_alternatif, statut)
ope_ecart_interqua <- resultats_ecart_interquartile$df1 # Construction d'un Df avec les écarts interquartiles des espèces par opération toutes tailles confondues + des différents statuts ----
ope_ecart_interqua_esp <- resultats_ecart_interquartile$df2 # Construction d'un Df des écarts interquartiles des espèces par opération toutes tailles confondues ----
ope_ecart_interqua_statut <- resultats_ecart_interquartile$df3 # Construction d'un df des écarts interquartiles des tailles des différents statuts des espèces (juvéniles / adultes) ----
Calcul des percentiles 25 et 75 des tailles des individus par opération : Création de la fonction “calcul_25_percentile” et “calcul_75_percentile” :
resultats_25_percentile <- calcul_25_percentile(mei_ope_selection,mei_taille,ope_id,esp_code_alternatif, statut)
ope_25_percentile <- resultats_25_percentile$df1 # Construction d'un Df des percentiles 25 des espèces par opération toutes tailles confondues + des différents statuts ----
ope_25_percentile_esp <- resultats_25_percentile$df2 # Construction d'un Df des percentiles 25 des espèces par opération toutes tailles confondues ----
ope_25_percentile_statut <- resultats_25_percentile$df3 # Construction d'un df des percentiles 25 des tailles des différents statuts des espèces (juvéniles / adultes) ----
resultats_75_percentile <- calcul_75_percentile(mei_ope_selection,mei_taille,ope_id,esp_code_alternatif, statut)
ope_75_percentile <- resultats_75_percentile$df1 # Construction d'un Df des percentiles 75 des espèces par opération toutes tailles confondues + des différents statuts ----
ope_75_percentile_esp <- resultats_75_percentile$df2 # Construction d'un Df des percentiles 75 des espèces par opération toutes tailles confondues ----
ope_75_percentile_statut <- resultats_75_percentile$df3 # Construction d'un df des percentiles 75 des tailles des différents statuts des espèces (juvéniles / adultes) ----
# Création du tableau pré-final avec tous les indicateurs calculés
ope_indicateur <- rbind(ope_50_percentile,
#ope_ecart_interqua,
#ope_25_percentile,
#ope_75_percentile,
ope_densite_surface,
ope_densite_vol,
ope_pc_juv,
ope_biomasse,
ope_effectif_total)
# Ajout des années d'opération au site et à l'année (pop_id) et (ope_date)
ope_indicateur <- ope_indicateur %>%
left_join(y=operation %>%
select(ope_id,
pop_id= ope_pop_id,
ope_date))
ope_indicateur <- ope_indicateur %>%
mef_ajouter_ope_date()
ope_indicateur <- ope_indicateur %>%
select(ope_id,
esp_code_alternatif,
indicateur,
valeur,
statut,
pop_id,
annee)
#Représentation graphique du tableau
ope_indicateur%>%
DT::datatable(rownames = FALSE)
# SAUVEGARDE ----
save(ope_indicateur,
file = "../processed_data/assemblage_tab_par_ope.rda")